<?php
require('init.php');
require(LIBWWWDIR . '/forms.php'); 
require(LIBWWWDIR . '/new_lib.php');
//array de respuesta y val
$resp = array();
$val = array();
$ciudades= array('' => '...', '1' => 'Armenia', '2' =>'Barrancabermeja',
'3' =>'Barranquilla', '4' =>'Bogotá D.C', '5' =>'Bucaramanga', '6' =>'Cali', '7' =>'Cartagena',
'8' =>'Girardot', '9' =>'Ibagué', '10' =>'Manizales', '11' =>'Medellín', '12' =>'Ocaña', '13' =>'Pamplona', '14' =>'Pereira', '15' =>'Popayán', '16' =>'San Gil', '17' =>'Tulúa' );
//$opciones tiene los valores que se envian a la pagina anterior y a la DB
$opciones = array(
'1'=> 'Universidad del Quindio', '2' => 'NO HAY UVIERSIDAD', '3'=> 'Corporación Universitaria Unitec',
'4'=> 'Escuela Colombiana de Ingeniería', '5'=> 'Escuela Tecnológica Instituto Técnico Central',
'6'=> 'Fundación Universitaria Konrad Lorenz', '7'=> 'Fundación Universitaria Los Libertadores',
'8'=> 'Fundación Universitaria San Martín', '9'=> 'Politécnico Grancolombiano',
'10'=> 'Pontificia Universidad Javeriana', '11'=> 'Servicio Nacional de Aprendizaje - SENA',
'12'=> 'Universidad Autónoma de Colombia', '13'=> 'Universidad Católica de Colombia',
'14'=> 'Universidad Central', '15'=> 'Universidad de la Sabana', '16'=> 'Universidad de los Andes',
'17'=> 'Universidad de San Buenaventura', '18'=> 'Universidad Distrital', '19'=> 'Universidad EAN',
'20'=> 'Universidad El Bosque', '21'=> 'Universidad Libre', '22'=> 'Universidad Manuela Beltrán', 
'23'=> 'Universidad Minuto de Dios', '24'=> 'Universidad Nacional de Colombia',
'25'=> 'Universidad Piloto de Colombia', '26'=> 'Universidad Sergio Arboleda', 
'27'=> 'Corporación Universitaria de la Costa', '28'=> 'Universidad del Norte', 
'29'=> 'Universidad Autónoma de Bucaramanga', '30'=> 'Universidad Cooperativa de Colombia', 
'31'=> 'Universidad de Santander','32'=> 'Universidad Pontificia Bolivariana',
'33'=> 'Pontificia Universidad Javeriana', '34'=> 'Servicio Nacional de Aprendizaje - SENA', 
'35'=> 'Universidad Autónoma de Occidente', '36'=> 'Universidad del Valle', '37'=> 'Universidad Icesi',
'38'=> 'Universidad de Cartagena', '39'=> 'Universidad Piloto de Colombia', '40'=> 'Universidad de Ibagué',
'41'=> 'Universidad Autónoma de Manizales', '42'=> 'Universidad de Caldas', 
'43'=> 'Universidad de Manizales', '44'=> 'Politécnico Colombiano Jaime Isaza Cadavid',
'45'=> 'Servicio Nacional de Aprendizaje - SENA', '46'=> 'Universidad de Antioquia', 
'47'=> 'Universidad de Medellín', '48'=> 'Universidad EAFIT', '49'=> 'Universidad Nacional de Colombia', '50'=> 'Universidad Pontificia Bolivariana','51'=> 'Universidad Francisco de Paula Santander Ocaña',
'52' => 'NO HAY UVIERSIDAD', '53'=> 'Servicio Nacional de Aprendizaje -- SENA', 
'54'=> 'Universidad Católica de Pereira', '55'=> 'Universidad Tecnológica de Pereira', 
'56'=> 'Universidad del Cauca', '57'=> 'Fundación Universitaria de San Gil', 
'58'=> 'Unidad Central del Valle del Cauca');

//funciones para validar

//BUSCAR LA FORMA DE MANTENER ACTUALIZADA ESTA FUNCIÓN EN CASO DE QUE SE CAMBIE EL NOMBRE DE LOS CAMPOS O DIRECCIÓN DE LA PAGINA
//recibe el documento de identificación y determina si un usuario pertenece o no a la UTP
function EnviarDatosUserUtp($ident){
	//url de registro y control
	$url = "http://app4.utp.edu.co/MatAcad/verificacion/historial-Web.php";	
	$code = $ident;
	$handler = curl_init();
	$fp = fopen ("resultPost", "w");
	curl_setopt($handler, CURLOPT_URL, $url);
	curl_setopt($handler, CURLOPT_POST,true);
	//"codigo2=" campo donde se ingresa el código
	curl_setopt($handler, CURLOPT_POSTFIELDS, "codigo2=".urlencode($code));
	curl_setopt ($handler, CURLOPT_FILE, $fp);
	$response = curl_exec ($handler);
	curl_close($handler);
	fclose ($fp);
}
function TratarDatosUserUtp(){
	$er = "#<select #i" ;
	$lines = file("resultPost");
	$selectores = array();
	foreach($lines as $lin){
		if( preg_match($er, $lin) )
			$selectores[] =  htmlentities($lin);
	}
	if( count($selectores) == '1'){
		return true;
	}else{
		return false;
	}
}
function validateCity($ciudad){
	$opciones = array('1', '2', '3', '4', '5', '6', '7', '8', '9','10',
			 '11', '12', '13', '14', '15', '16', '17');
	if( in_array($ciudad, $opciones) )
		return true;
	else
		return false;
}
function validateUniv($univ){
$opciones = array('1', '2', '3', '4', '5', '6', '7', '8', '9','10', '11', '12', '13', '14', '15', '16', '17', '18', '19', '20', '21', '22', '23', '24', '25', '26', '27', '28', '29', '30', '31', '32', '33', '34', '35', '36', '37', '38', '39', '40', '41', '42', '43', '44', '45', '46', '47', '48', '49', '50', '51', '52', '53','54', '55', '56', '57', '58');
	if( in_array($univ, $opciones) )
		return true;
	else
		return false;
}
function validateName($name){
	if( strlen($name) < 4 )
		return false;
	// [a-zA-Z]
	elseif( !preg_match("/^[a-zA-Z\s ñ Ñ á Á éÉ íÍ óÓ úÚ]+$/", $name ) ) 
		return false;
	else
		return true;
}
function validateUsername($user){
	if( strlen($user) < 3 )
		return false;
	elseif( !preg_match("/^\w+$/", $user ) )
		return false;
	else
		return true;
}
function validatePassword($passw){
	if( strlen($passw) < 6 || strlen($passw) > 12 )
		return false;
	elseif( !preg_match("/^\w+$/", $passw ) )
		return false;
	else
		return true;
}
function validateTident($ident){
	//$opciones = array('TI', 'CC', 'CE', 'PA');
	$opciones = array('TI', 'CC');
	if( in_array($ident, $opciones) )
		return true;
	else
		return false;
}
function validateIdentif($ident){
	if( strlen($ident) < 8 )
		return false;
	elseif( !preg_match("/^-?(?:\d+|\d{1,3}(?:,\d{3})+)(?:\.\d+)?$/", $ident ) )
		return false;
	else
		return true;
}
function validateGener($gen){
	$opciones = array('MASCULINO', 'FEMENINO');
	if( in_array($gen, $opciones) )
		return true;
	else
		return false;
}
function validateAddress($dir){
	if( strlen($dir) < 10 || strlen($dir) > 40 )
		return false;
	else
		return true;
}
function validateTel($tel){
	if( strlen($tel) < 7 || strlen($tel) > 15 )
		return false;
	elseif( !preg_match("/^-?(?:\d+|\d{1,3}(?:,\d{3})+)(?:\.\d+)?$/", $tel ) )
		return false;
	else
		return true;		
}
function validateEmail($email){
if ( !preg_match(
'/^[^0-9][a-zA-Z0-9_]+([.][a-zA-Z0-9_]+)*[@][a-zA-Z0-9_]+([.][a-zA-Z0-9_]+)*[.][a-zA-Z]{2,4}$/',$email) ){
	return false;
}else{
	return true;
	}
}
function validatePrograms($prog){
	if( strlen($prog) < 6 || strlen($prog) > 100 )
		return false;
	else
		return true;
}

//función para verificar existencia del usuario
function checkUsername( $user ){
	$conexion = connect();
	$query = "SELECT username FROM users WHERE username = '".$user ."'";
	$res = mysql_query($query, $conexion) or die(mysql_error());
	$exit_user = mysql_fetch_array($res, MYSQL_NUM);
	$tam_res = mysql_num_rows($res);
	if( $tam_res == 0 )
		return true; // user disponible
	else
		return false; // user no disponible
}
//función para verificar existencia del email
function checkEmail( $email ){
	$conexion = connect();
	$query = "SELECT username FROM users WHERE email = '".$email ."'";
	$res = mysql_query($query, $conexion) or die(mysql_error());
	$exit_user = mysql_fetch_array($res, MYSQL_NUM);
	$tam_res = mysql_num_rows($res);
	if( $tam_res == 0 )
		return true; // user disponible
	else
		return false; // user no disponible
}

//funcion para verificar valores igual a 1
function igual1($val){
	if( $val == '0' )
		return false;
	elseif( $val == '2' )
		return false;
	else
		return true;
}
//funcion para almacenar datos
/*function data_save($values){
	
	$n = count($values) + 1;
	for( $i=0; $i<$n; $i++ ){
		echo $values[$i];
	}
	$conexion = connect();
	//$query = "SELECT username FROM users WHERE username = '".$user ."'";
	$query = "INSERT INTO team (login,name,categoryid,email,members) values('$login','$name',1,'$correo','$integ')";
	$insert = mysql_query($query, $conexion) or die(mysql_error());
	
}*/
//recibir datos del formulario
if ( empty($_POST['submit']) ){
	header('Location: index.php');
}

if ( isset($_POST) ){
	if ( isset($_POST['ciudad']) ){
		$city = $_POST['ciudad'];
		if( validateCity($city) )
			$resp[0] = '1';
		else
			$resp[0] = '0';
		$val[0] = $city;
	}
	if ( isset($_POST['name']) ){
		$name = $_POST['name'];
		if( validateName($name) )
			$resp[1] = '1';
		else
			$resp[1] = '0';
		$val[1] = $name;

	}
	if ( isset($_POST['papell']) ){
		$f_name = $_POST['papell'];
		if( validateName($name) )
			$resp[2] = '1';
		else
			$resp[2] = '0';
		$val[2] = $f_name;
	}
	if ( isset($_POST['sapell']) ){
		$s_name = $_POST['sapell'];
		if( empty($s_name) )
			$resp[3] = '1';
		elseif( validateName($name) )
			$resp[3] = '1';
		else
			$resp[3] = '0';
		$val[3] = $s_name;
	}
	if ( isset($_POST['user']) ){
		$user_name = $_POST['user'];
		if( validateUsername($user_name) ){ 	//validar el campo
			if( checkUsername( $user_name ) )	//verificar existencia usuario
				$resp[4] = '1'; //user disponible 
			else
				$resp[4] = '2'; //user no disponible
		}else{
			$resp[4] = '0';//campo no valido
		}
		$val[4] = $user_name;	
	}
	if( isset($_POST['passw']) && isset($_POST['passw_r']) ){
		$passw = $_POST['passw'];
		$passw_r = $_POST['passw_r'];
		if( !validatePassword($passw) ){
			$resp[5] = '0';//campo no valido
		}elseif( $passw != $passw_r ){
			$resp[5] = '2';//password  diferentes
		}else{
			$resp[5] = '1';//password iguales
			//$val[15] = $passw;
			$key = MD5($passw);
		}	
	}
	if ( isset($_POST['tipo_ident']) ){
		$t_ident = $_POST['tipo_ident']; 
		if( validateTident($t_ident) )
			$resp[6] = '1';
		else
			$resp[6] = '0';
		$val[5] = $t_ident;
	}
	if ( isset($_POST['ident']) ){
		$ident = $_POST['ident']; 
		if( validateIdentif($ident) )
			$resp[7] = '1';
		else
			$resp[7] = '0';
		$val[6] = $ident;
	}
	if ( isset($_POST['genero']) ){
		$gen = $_POST['genero']; 
		if( validateGener($gen) )
			$resp[8] = '1';
		else
			$resp[8] = '0';
		$val[7] = $gen;
	}
	if ( isset($_POST['direc']) ){
		$dir = $_POST['direc'];
		if( empty($dir) )
			$resp[9] = '1';
		elseif( validateAddress($dir) )
			$resp[9] = '1';
		else
			$resp[9] = '0';
		$val[8] = $dir;
	}
	if ( isset($_POST['tel']) ){
		$tel = $_POST['tel'];
		if( empty($tel) )
			$resp[10] = '1';
		elseif( validateTel($tel) )
			$resp[10] = '1';
		else
			$resp[10] = '0';
		$val[9] = $tel;
	}
	if ( isset($_POST['email']) ){
		$email = $_POST['email'];
		if( validateEmail($email) ){
			if( checkEmail($email) )	
				$resp[11] = '1';//correo no existe
			else
				$resp[11] = '2'; //correo ya existente
		}else{
			$resp[11] = '0';
		}
		$val[10] = $email;
	}
	if ( isset($_POST['programas']) ){
		$progra = $_POST['programas'];
		if( empty($progra) )
			$resp[12] = '1';
		elseif( validatePrograms($progra) )
			$resp[12] = '1';
		else
			$resp[12] = '0';
		$val[11] = $progra;
	}
	if ( isset($_POST['talla']) )
		$val[12] = $_POST['talla'];

	if ( isset($_POST['condiciones']) ){
		$cond = $_POST['condiciones'];
		if( empty($cond) )
			$resp[13] = '1';
		elseif( validatePrograms($cond) )
			$resp[13] = '1';
		else
			$resp[13] = '0';
		$val[13] = $cond;
	}					
	if ( isset($_POST['univ']) ){
		$valuniv = $_POST['univ'];
		if( validateUniv($valuniv) )
			$resp[14] = '1';
		else
			$resp[14] = '0';		

		$val[14] = $opciones[$valuniv];	
	}
	
	if( (igual1($resp[7]) AND igual1($resp[14])) AND  $valuniv == '55'){
		EnviarDatosUserUtp($val[6]);
		if( TratarDatosUserUtp() ){
			$utp = '1';
		}else{
			$utp = '0';
		}
	}
	//encode arrays
//verificar si todos los campos son validos para almacenar info en la DB
	if( igual1($resp[0]) AND igual1($resp[1]) && igual1($resp[2]) && igual1($resp[3]) && 
	igual1($resp[4])  && igual1($resp[5]) && igual1($resp[6]) && igual1($resp[7]) && 
	igual1($resp[8]) && igual1($resp[9]) && igual1($resp[10]) && igual1($resp[11]) && 
	igual1($resp[12]) &&  igual1($resp[13])  )
	{
		//busca una forma más decente de hacer esto :P
		$ciudad = $val[0];
		$cityValue = $ciudades[$ciudad ];
		$nameValue = $val[1];
		$papellValue = $val[2];
		$sapellValue = $val[3];
		$usernameValue = $val[4];
		$tipoidenValue = $val[5];
		$identifValue = $val[6];
		$generValue = $val[7];
		$dirValue = $val[8];
		$telValue = $val[9];
		$emailValue = $val[10];
		$programsValue = $val[11];
		$sizeValue = $val[12];
		$condValue = $val[13];
		$uniValue = $val[14];
		$pawValue = $val[15];
		$bithValue = "01/04/2012";

		//verificar si el usuario con Universidad UTP realmente pertenece a la u
		if( $valuniv == '55' ){
			EnviarDatosUserUtp($val[6]);
			if( TratarDatosUserUtp() ){
				$utp = '1';
			}else{
				$utp = '0';
			}
		}
		//almacenar usuario
		
		$conexion = connect();
		$query = "INSERT INTO users (username, city, name, first_name, last_name, password, 			ident_type, identification, date_bith, gender, address, tel, email, programs, talla, 			conditions, photo, university, interno) 
		values('$usernameValue', '$cityValue', '$nameValue', '$papellValue', 			'$sapellValue', '$key', '$tipoidenValue', '$identifValue', '$bithValue', 			'$generValue', '$dirValue', '$telValue', '$emailValue', '$programsValue', '$sizeValue', 		'$condValue', '', '$uniValue', '$utp')";
		$res = mysql_query($query, $conexion) or die(mysql_error());
		if($res){
				$all_ok = "1";
				//echo "Se ha guardado con exito!!!!!!!!!!!<br>";
		}else{
				//echo "chanflee!! :S <br>";
		}
			 
	}else{
		$all_ok = "0"; 
	}
	if( $all_ok == "1" ){
		$cat = 1;
		$members = $nameValue." ".$papellValue." ".$sapellValue;
		$ins = "INSERT INTO team (login, name, categoryid, authtoken, members) 
		values('$usernameValue', '$usernameValue', '$cat', '$key', '$members')";
		$res_ins = mysql_query($ins, $conexion) or die(mysql_error());//tratamiento err query
		if($res_ins){
				//echo "Se ha guardado con exito!!!!!!!!!!!<br>";
		}else{
				//echo "chanflee!! :S <br>";
		}
	}
	//print_r($val);
	$resp= array_envia($resp);
	$val = array_envia($val);
	//enviar respuesta
//retornar respuesta al formulario sólo cuando se ha hecho submit, no cuando se genera la universidad de acuerdo a la ciudad
	header('Location: register.php?res='.$resp.'&v='.$val.'&rf='.$all_ok);
}


?>
